
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
float myPower1(float x,int N)
{
    if(N==1)
      return x;
    if(N>0)
    return (myPower1(x,N-1)*x);
    if(N==0)
    return  1;
    if(N<0)
        return (myPower1(1/x,-N-1))*(1/x);
}
float myPower2(float x,int N)
{  
    float res=x;
    int i;
    if(N>0)
   {
        for(i=0;i<N-1;i++)
        {
            res*=x;
        } 
        return res;
   }
    if(N==0)
    return 1;
    if(N<0)
    {
        x=1/x;
        res=x;
        N=abs(N);
        for(i=0;i<N-1;i++)
        {
            res*=x;
        } 
        return res;
    }
   
    
}
int main()
{
    float x;
    int N;
    float ans1,ans2;
    printf("请输入底数x和指数N\n");
    scanf("%f%d",&x,&N);
    ans1 = myPower1(x, N);     // 4的2次方
    ans2 = myPower2(x, N);     // 4的2次方
    printf("%f\n",ans1);
    printf("%f\n",ans2);
    return 0;
}